﻿using System;
using CommonComponents.ExceptionHandling;
using LASLogic.BusinessLayer.DataModel;

namespace LASLogic.DataLayer.ServiceAgent
{
	public class ExchangeRateAgent
	{

		/// <summary>
		/// Generador de aleatorios temporal para el método dummy
		/// </summary>
		private readonly Random _rGen;

		#region Singleton

		private ExchangeRateAgent() { _rGen = new Random(); }

		/// <summary>
		/// Única instancia de esta clase
		/// </summary>
		private static ExchangeRateAgent _instance;

		/// <summary>
		/// Método para implementar el patrón de Singleton
		/// </summary>
		/// <returns>Instancia única de la clase</returns>
		public static ExchangeRateAgent GetInstance()
		{
			if (_instance == null)
				_instance = new ExchangeRateAgent();
			return _instance;
		}

		#endregion

		#region Public Methods
		public bool ValidateCreditCard(LasUser owner, long creditCardNumber, int pin)
		{
			try
			{
			return _rGen.Next(10) < 8;
				//TODO: Cambiar x llamada a un servicio
			}
			catch (Exception ex)
			{
				ExceptionHandlingManager.ManageException(ex, ExceptionHandlingManager.ExceptionPolicyType.DataLayer);
				return false;
			}
		}

        /// <summary>
        /// Metodo que permite obtener el tipo de cambio de alguna moneda a dolares
        /// </summary>
        /// <returns></returns>
		public bool GetTipoCambio()
		{
			try
			{
                
                return true;
			}
			catch (Exception ex)
			{
				ExceptionHandlingManager.ManageException(ex, ExceptionHandlingManager.ExceptionPolicyType.DataLayer);
				return false;
			}
		} 
		#endregion

	}
}
